除 Web 應(yīng)用程序外,無(wú)服務(wù)器架構(gòu)還可用于構(gòu)建移動(dòng)應(yīng)用程序。通過(guò)采用無(wú)服務(wù)器后端的混合移動(dòng)應(yīng)用程序,開(kāi)發(fā)人員可以結(jié)合無(wú)服務(wù)器計(jì)算的優(yōu)勢(shì),發(fā)布能夠在幾乎任何智能手機(jī)或平板電腦上像本機(jī)應(yīng)用程序一樣運(yùn)行的應(yīng)用程序。隨著用戶(hù)群增長(zhǎng),可以便捷地?cái)U(kuò)展無(wú)服務(wù)器移動(dòng)應(yīng)用程序。
什么是混合移動(dòng)應(yīng)用程序?
混合移動(dòng)應(yīng)用程序和本機(jī)移動(dòng)應(yīng)用程序就像兩輛汽車(chē),它們的外觀相同、內(nèi)飾相同、駕駛方式也大致相同,但引擎蓋下的發(fā)動(dòng)機(jī)卻大不相同。本機(jī)應(yīng)用程序是專(zhuān)門(mén)為特定類(lèi)型的設(shè)備和操作系統(tǒng)構(gòu)建的,其邏輯在設(shè)備本身運(yùn)行。
混合應(yīng)用程序是使用 HTML、CSS 和 JavaScript 構(gòu)建的 Web 應(yīng)用程序,可在“本機(jī)包裝”中運(yùn)行,因此它可以在各種設(shè)備上像本機(jī)移動(dòng)應(yīng)用程序一樣運(yùn)行。與常規(guī)的 Web 應(yīng)用程序不同,混合應(yīng)用程序可以訪問(wèn)特定于平臺(tái)的功能,包括設(shè)備硬件和特定于某種設(shè)備類(lèi)型的推送通知功能。用戶(hù)可以通過(guò) App Store 或 Google Play 下載這些混合應(yīng)用程序,并像安裝本機(jī)應(yīng)用程序一樣予以安裝,但由于大多數(shù)甚或所有邏輯都托管在云中,下載和安裝的次數(shù)通常更少。
近年來(lái),由于技術(shù)改進(jìn)消除了性能顧慮,因此混合應(yīng)用程序變得越來(lái)越流行。例如,Uber、Instagram 和 Twitter 都是混合應(yīng)用程序。與構(gòu)建本機(jī)移動(dòng)應(yīng)用程序相反,開(kāi)發(fā)人員有時(shí)更喜歡使用混合架構(gòu),這樣就無(wú)需針對(duì)不同設(shè)備使用多種平臺(tái)特定的語(yǔ)言來(lái)重新構(gòu)建應(yīng)用程序。毫不奇怪,構(gòu)建可在多種設(shè)備上運(yùn)行的應(yīng)用程序通常可以節(jié)省開(kāi)發(fā)和提供持續(xù)產(chǎn)品支持的時(shí)間。
采用無(wú)服務(wù)器后端的移動(dòng)應(yīng)用程序如何工作?
使用混合移動(dòng)應(yīng)用程序,計(jì)算將在云中進(jìn)行,而不是在設(shè)備上進(jìn)行。應(yīng)用程序的所有云托管計(jì)算過(guò)程都可以無(wú)服務(wù)器進(jìn)行,就像無(wú)服務(wù)器的 Web 應(yīng)用程序一樣。無(wú)服務(wù)器 Web 應(yīng)用程序和無(wú)服務(wù)器混合移動(dòng)應(yīng)用程序之間的唯一主要區(qū)別在于前端的本機(jī)包裝*。
與無(wú)服務(wù)器的 Web 應(yīng)用程序一樣,應(yīng)用程序代碼由處理所有后端管理流程的無(wú)服務(wù)器供應(yīng)商托管。應(yīng)用程序分為一些小的部分,稱(chēng)為函數(shù),這些函數(shù)不依賴(lài)于任何特定的服務(wù)器。每個(gè)函數(shù)都會(huì)響應(yīng)觸發(fā)事件而運(yùn)行,并且供應(yīng)商的基礎(chǔ)設(shè)施會(huì)根據(jù)需要啟動(dòng)新的函數(shù)實(shí)例。例如,如果用戶(hù)在采用無(wú)服務(wù)器后端的應(yīng)用程序中點(diǎn)擊“購(gòu)買(mǎi)”按鈕,就會(huì)觸發(fā)一個(gè)或一系列后端函數(shù),以啟動(dòng)、記錄交易并發(fā)起用戶(hù)所購(gòu)買(mǎi)商品的交付。
構(gòu)建采用無(wú)服務(wù)器后端的移動(dòng)應(yīng)用程序有什么好處?
無(wú)服務(wù)器移動(dòng)應(yīng)用程序具有與使用無(wú)服務(wù)器后端構(gòu)建典型 Web 應(yīng)用程序相同的優(yōu)勢(shì):
- 可擴(kuò)展性:無(wú)服務(wù)器應(yīng)用程序可自動(dòng)擴(kuò)展
- 減少開(kāi)銷(xiāo):供應(yīng)商管理整個(gè)后端
- 快速更新:開(kāi)發(fā)人員可以一次更新一個(gè)功能,而不必一次更新整個(gè)應(yīng)用程序,并且無(wú)需等待用戶(hù)安裝更新
- 即付即用:開(kāi)發(fā)人員只為應(yīng)用程序使用的計(jì)算能力付費(fèi),這可以減少持續(xù)成本
- 在任何地方運(yùn)行代碼:可以在邊緣網(wǎng)絡(luò)上運(yùn)行代碼,以減少延遲